$NG.AllReady(function (page, { useUpdateRow, useBeforeClick ,useValuesChange, useUpdateRows }) {
    const mstform = $NG.getCmpApi("p_form_pc_liquid_m");
    const grid = $NG.getCmpApi("p_form_pc_liquid_d");
    if (page.oType == "add") {
        getPtInfoByPhid()
        getCntMInfoByPhid()
        var pc = mstform.getItem("phid_pc");
        console.log(pc.getValue());
        console.log("123123");
        if (pc.getValue() > "0") {
            getQSInfo(pc.getValue())

            var pcname = mstform.getItem("phid_pc").getRawValue().label
            $NG.updateState((updater) => {
                //文本
                updater.data.p_form_pc_liquid_m.setProps({
                    bill_name: pcname + "项目清算",
                });
            });
        }
    }



    useBeforeClick(async function ({ args }) {
        //按钮点击前事件
        $NG.execServer("getRkYhInfo", { pc: mstform.getItem("phid_pc").getValue() }, function (res) {
            console.log(res);
            const data = JSON.parse(res.data);
            const ce = data[0].extendObjects.ce;
            if (ce) {
                $NG.alert("存在要货单的物资未入库，全部入库后方可进行项目清算")
                return false;
            } else {

            }
        });
        // return false; // 取消向下执行
    }, "save");

    //项目名称变化时自动带入产品线、事业部等
    useValuesChange(({ args }) => {

        console.log(args[0]);
        //const phid_pc = args[0].pc.PhId;
        const phid_pc = args[0].phid_pc.value;
        console.log(phid_pc);
        //从项目取值
        if (phid_pc) {
            console.log(phid_pc);
            const mstform = $NG.getCmpApi("p_form_pc_liquid_m");
            getQSInfo(phid_pc)

            var pcname = mstform.getItem("phid_pc").getRawValue().label
            $NG.updateState((updater) => {
                //文本
                updater.data.p_form_pc_liquid_m.setProps({
                    bill_name: pcname + "项目清算",
                });
            });
        }
        getPtInfoByPhid()
    }, "p_form_pc_liquid_m.phid_pc");

    useValuesChange(({ args }) => {

        getCntMInfoByPhid()
    }, "p_form_pc_liquid_m.u_cnt_name");

    useUpdateRows(({ args }) => {
        const rows = args[0] || []; // 确保args[0]存在，避免潜在的null或undefined引用

        rows.forEach((item) => {
            // 使用可选链操作符 (?.) 来安全地访问属性，并提供默认值 '0' 以防属性不存在或为非数字
            const amt = parseFloat(item.amt ?? '0');
            const u_sscb = parseFloat(item.u_sscb ?? '0');
            const u_fsscb = parseFloat(item.u_fsscb ?? '0');
            const u_qzbg = parseFloat(item.u_qzbg ?? '0');
            const u_yrzcb = parseFloat(item.u_yrzcb ?? '0');
            const u_hqcb = parseFloat(item.u_hqcb ?? '0');

            // 只有当所有需要的字段都存在并且是有效的数字时才进行计算
            if (!isNaN(amt) && !isNaN(u_sscb) && !isNaN(u_fsscb) && !isNaN(u_qzbg) && !isNaN(u_yrzcb) && !isNaN(u_hqcb)) {
                item.u_sjhj = amt + u_sscb + u_fsscb + u_qzbg;
                item.u_total = u_yrzcb + u_hqcb;
                item.u_jy = item.u_sjhj - item.u_total;
            }
        });
    }, "p_form_pc_liquid_d");
        //获取合同信息
    function getCntMInfoByPhid(params) {
      if(!mstform.getItem("u_cnt_name").getValue()) return
      $NG.execServer("getCntMInfoByPhid", { phid: mstform.getItem("u_cnt_name").getValue() }, function (res) {
        const datas = JSON.parse(res.data)[0].extendObjects;
        console.log('获取合同信息',datas);
        $NG.updateState((updater) => {
          updater.data.p_form_pc_liquid_m.setProps({
            u_cnt_no: datas.pcm_no, //合同编号
            // start_dt: datas.start_dt, //约定开工时间
            // end_dt: datas.end_dt, //约定完工时间
            u_ht_amt_ori: datas.cnt_sum,
            u_total_cnt_amt_vat: datas.cnt_sum_vat_fc, //合同金额
            u_cnt_amt_vat: datas.cnt_sum_vat_fc, //合同金额
            u_htxe: datas.cnt_sum_vat_fc, //合同价税合计
            //产品线
            user_product_line: {
              value: datas.midwife_phid,
              label: datas.midwife_name,
            },
            //合同类型
            u_cnt_type: {
              value: datas.pct_id,
              label: datas.pct_name,
            },
            //甲方单位
            u_customer: {
              value: datas.customer_id,
              label: datas.customer_name,
            },
            //乙方单位
            supply: {
              value: datas.supply_id,
              label: datas.supply_name,
            },
            //发票类型
            u_invoice_type: {
              value: datas.invoice_type_phid,
              label: datas.invoice_type_name,
            },
            //购方信息（客户信息）（收票单位信息）
            //单位名称
            tick_id: {
              value: datas.tick_id,
              label: datas.tick_name,
            },
            //单位编码
            tick_no: datas.tick_no,
            //社会信用代码
            tick_unisocialcredit: datas.tick_unisocialcredit,
            //单位地址
            tick_taxaddress: datas.tick_taxaddress,
            //联系电话
            tick_taxtelephone: datas.tick_taxtelephone,
            //银行名称
            tick_taxbankid: {
              value: datas.tick_taxbankid,
              label: datas.tick_taxbankname,
            },
            //银行账号
            tick_taxaccountno: datas.tick_taxaccountno,
            //销方信息（供应商信息）（开票单位信息）
            //单位名称
            inv_id: { value: datas.inv_id, label: datas.inv_name },
            //单位编码
            inv_no: datas.inv_no,
            //社会信用代码
            inv_unisocialcredit: datas.inv_unisocialcredit,
            //单位地址
            inv_taxaddress: datas.inv_taxaddress,
            //联系电话
            inv_taxtelephone: datas.inv_taxtelephone,
            //银行名称
            inv_taxbankid: {
              value: datas.inv_taxbankid,
              label: datas.inv_taxbankname,
            },
            //银行账号
            inv_taxaccountno: datas.inv_taxaccountno,
          });
        });
        // getQzInfo();
      });
    }

    function getPtInfoByPhid() {
        if (mstform.getItem("phid_pc").getValue()) {
        $NG.execServer("getPtInfoByPhid", { phid: mstform.getItem("phid_pc").getValue() }, function (res) {
            const datas = JSON.parse(res.data)[0].extendObjects;
            console.log(`项目信息`,datas);
            //帮助字段赋值
            $NG.updateState((updater) => {
            updater.data.p_form_pc_liquid_m.setProps({
                u_pc_no: datas.pc_no, //项目编号
                u_agreed_sts_dt: datas.start_date, //计划完工日期
                u_agreed_pcl_dt: datas.end_date, //计划竣工日期
                u_xmjl: {
					value: datas.project_manager_phid,
					label: datas.project_manager_name,
				},
                u_sqgw: {
                //售前顾问
                    value: datas.user_sqgw_phid,
                    label: datas.user_sqgw_name,
                },
                //事业部
                u_division: {
                value: datas.division_phid,
                label: datas.division_name,
                },
                //大区
                u_region: {
                value: datas.phid_org_phid,
                label: datas.phid_org_name,
                },
                u_regional_center: {
                //区域中心
                value: datas.regional_center_phid,
                label: datas.regional_center_name,
                },
                u_product_line: {
                //产品线
                value: datas.midwife_phid,
                label: datas.midwife_name,
                },
                phid_org: {
                //部门
                value: datas.dept_phid,
                label: datas.dept_name,
                },
                u_pc_type: {
                //项目类型
                value: datas.type_phid,
                label: datas.type_name,
                },
            });
            });
        });
        }
    }

});




function getQSInfo(pc) {
    const grid = $NG.getCmpApi("p_form_pc_liquid_d");
    grid.clearRows();
    $NG.execServer('GetJSInfo', { pc: pc }, function (res) {
        const data = JSON.parse(res.data);
        var gridArr = []; // 定义表体数组
        var gridCount = res.count; // 增加的行数, 可根据从数据库中取出的数据总数增行
        for (var i = 0; i < gridCount; i++) {
            // 列出需要赋值的表体字段
            var gridObj = {
                u_pc_no: '',
                amt: '',
                u_sscb: '',
                u_fsscb: '',
                u_qzbg: '',
                u_yrzcb: '',
            };
            gridObj.u_pc_no = data[i].extendObjects.bh;
            gridObj.amt = data[i].extendObjects.cspsje;
            gridObj.u_sscb = data[i].extendObjects.ssyy;
            gridObj.u_fsscb = data[i].extendObjects.fssyy;
            gridObj.u_qzbg = data[i].extendObjects.bgje;
            gridObj.u_yrzcb = data[i].extendObjects.rzcb;

            gridArr.push(gridObj);
        }

        // 清空表格内容（放在循环外部）
        grid.clearRows();

        // 调用新增表体行数据的函数
        grid.addRows(gridArr);

        // 更新RichHelp字段（如果需要）
        // 这里假设有一个方法可以刷新或重新渲染表格，以确保RichHelp字段正确显示
        grid.refreshView(); // 或者使用grid.refreshData();
    });



}

